package com.example.shop.order.service;

import com.example.shop.common.api.ServiceReturn;
import com.example.shop.order.dto.OrderBrowseInfo;
import com.example.shop.order.dto.OrderDetailInfo;
import com.example.shop.order.dto.OrderQueryParam;
import com.example.shop.pojo.Merchant;
import com.example.shop.pojo.User;

import java.util.List;

public interface BrowseOrderService {

    /**
     * 根据条件查询出订单列表
     * @param merchant 购买的商品所归属的商家
     * @param queryParam 查询条件
     * @return 返回订单的浏览列表
     */
    ServiceReturn<List<OrderBrowseInfo>> merchantObtainOrderInfo(Merchant merchant,OrderQueryParam queryParam);
    /**
     * 获取该商家下所有商品被下单的订单的详细信息
     * @param merchant 购买的商品所归属的商家
     * @param orderId 订单id
     * @return 返回订单的详细信息
     */
    ServiceReturn<OrderDetailInfo> merchantObtainOrderInfo(Merchant merchant,long orderId);

    /**
     * 获取该用户的指定订单的详细信息
     * @param user 订单归属的用户
     * @param orderId 订单id
     * @return 返回订单的详细信息
     */
    ServiceReturn<OrderDetailInfo> obtainDetailInfo(User user, long orderId);

    /**
     * 根据条件查询该用户的订单浏览列表
     * @param user 订单归属的用户
     * @param queryParam 查询条件
     * @return 返回订单浏览列表
     */
    ServiceReturn<List<OrderBrowseInfo>> obtainBrowseList(User user,OrderQueryParam queryParam);
}
